package com.zwkj.util;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.zwkj.common.DigestType;

import java.util.Map;

/**
 * @author Gap
 * @version 1.0
 * @createDate 时间:2023/12/14
 * @description 描述:
 */
public class FileTemplateUtil {
    /**
     * 文档 ID，必须与传入的file_id一致，最大长度 48
     */
    @JsonProperty("id")
    private String id;
    /**
     * 文档名称，最大长度 240，不能包含下列特殊字符：\|":*?<>
     */
    @JsonProperty("name")
    private String name;
    /**
     * 文档版本号，无符号 int32 位，从 1 开始，每次保存后递增，如果已经迭代了多个版本，这里您需要返回最新的版本号
     */
    @JsonProperty("version")
    private Integer version;
    /**
     * 文档大小，单位 byte
     */
    @JsonProperty("size")
    private Integer size;
    /**
     * 文档创建时间戳，单位纪元秒
     */
    @JsonProperty("create_time")
    private Integer createTime;
    /**
     * 文档最后修改时间戳，单位纪元秒
     */
    @JsonProperty("modify_time")
    private Integer modifyTime;
    /**
     * 文档创建者 Id
     */
    @JsonProperty("creator_id")
    private String creatorId;
    /**
     * 文档最后修改者 Id
     */
    @JsonProperty("modifier_id")
    private String modifierId;

    /**
     * 文档下载地址
     */
    @JsonProperty("url")
    private String url;


    private static FileTemplateUtil fileTemplateUtil = null;

    private FileTemplateUtil() {

    }

    private FileTemplateUtil(String id, String name, Integer version, Integer size, Integer createTime, Integer modifyTime, String creatorId, String modifierId, String url) {
        this.id = id;
        this.name = name;
        this.version = version;
        this.size = size;
        this.createTime = createTime;
        this.modifyTime = modifyTime;
        this.creatorId = creatorId;
        this.modifierId = modifierId;
        this.url = url;
    }

    public static FileTemplateUtil getInstance() {
        if (fileTemplateUtil == null) {
            fileTemplateUtil = new FileTemplateUtil();
        }
        return fileTemplateUtil;
    }

    public static FileTemplateUtil getInstance(String id, String name, Integer version, Integer size, Integer createTime, Integer modifyTime, String creatorId, String modifierId, String url) {
        if (fileTemplateUtil == null) {
            fileTemplateUtil = new FileTemplateUtil(id, name, version, size, createTime, modifyTime, creatorId, modifierId, url);
        }
        return fileTemplateUtil;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Integer getVersion() {
        return version;
    }

    public Integer getSize() {
        return size;
    }

    public Integer getCreateTime() {
        return createTime;
    }

    public Integer getModifyTime() {
        return modifyTime;
    }

    public String getCreatorId() {
        return creatorId;
    }

    public String getModifierId() {
        return modifierId;
    }

    public String getUrl() {
        return url;
    }
}
